#ifndef __TIMER_H__
#define __TIMER_H__

class GenericTimerCallback
{
public:
	virtual ~GenericTimerCallback() {}
	virtual void TimerExpired() = 0;
};

class GenericTimer
{
public:
	virtual ~GenericTimer() {}
	virtual void ScheduleTimer(unsigned int ms) = 0;
	virtual void CancelTimer() = 0;

	static GenericTimer* CreateOsTimer(GenericTimerCallback *cb);
};


#endif
